import { createMemoryHistory, createRouter, createWebHistory } from "vue-router"

import login from "./routes/login"

const routes = [
  ...login
]

const router = createRouter({
  history: createMemoryHistory(),
  routes,
  scrollBehavior(to, from, savedPosition) {
    // 返回顶部或保存的位置
    if (savedPosition) {
      return savedPosition
    } else {
      return { top: 0, behavior: 'smooth' }
    }
  }
})

// 全局路由守卫
router.beforeEach((to, from, next) => {

  // 设置页面标题

  if (to.meta.title) {
    document.title = `${to.meta.title} - 我的应用`
  }

  // 检查认证状态
  const isAuthenticated = localStorage.getItem('token')
  const isAdmin = localStorage.getItem('role') === 'admin'

  // 需要登录但未登录
  if (to.meta.requiresAuth && !isAuthenticated) {
    next({ name: 'Login', query: { redirect: to.fullPath } })
    return
  }

  // 需要管理员权限但不是管理员
  if (to.meta.requiresAdmin && !isAdmin) {
    next({ name: 'Home' })
    return
  }

  // 需要游客身份但已登录
  if (to.meta.requiresGuest && isAuthenticated) {
    next({ name: 'Home' })
    return
  }

  next()
})

// 全局后置钩子
router.afterEach((to, from) => {
  // 可以在这里添加统计代码等
})

export default router